const path = require('path')
const fillUtils = require('../utils/file_utils')
const WebSocket = require('ws')
// 创建websocket实例对象
const wss = new WebSocket.Server({
  port: 9998
})
module.exports.listen = () => {
  // 监听事件
  // client：代表的是客户端的连接socket对象
  wss.on('connection', client => {
    console.log('有客户端连接...');
    // 对客户端的连接对象进行message事件的监听
    // msg：由客户端发个服务器的数据
    client.on('message', async msg => {
      console.log('客户端发送数据给服务端了：' + msg);
      // 发送数据给客户端
      // client.send('hello socket')
      let payload = JSON.parse(msg)
      const action = payload.action
      if (action === 'getData') {
        // 返回每个模块的数据
        let filePath = '../data/' + payload.chartName + '.json'
        filePath = path.join(__dirname, filePath)
        const res = await fillUtils.getFileJsonData(filePath)
        payload.data = res // 增加data字段
        client.send(JSON.stringify(payload))
      } else {
        // 主题切换，全屏切换，进行每个客户端的同步，收到什么数据就发送什么数据
        // wss.clients 所有客户端的连接
        wss.clients.forEach(client => {
          // console.log('*****************************');
          client.send(JSON.stringify(JSON.parse(msg)))
        })
      }
    })
  })
}
